$(function () {

    //加载表格
    let options = getBtGlobalOptions();
    options.ajax = function (params) {
        $.ajax({
            type: "GET",
            url: "/flowDef/getFlowDefList",
            contentType: "application/x-www-form-urlencoded",
            dataType: "json",
            data: params.data,
            success: function (data) {
                if (data.code === SUCCESS_CODE) {
                    params.success(data.payload);
                } else {
                    toastr.error(data.msg);
                }
            }
        });
    };
    options.columns = [/*{
        field: 'state',//显示checkbox
        checkbox: true
    },*/ {
        field: 'name',
        title: '流程名称',
        sortable: true
    }, {
        field: 'des',
        title: '流程描述',
        sortable: true
    }, {
        field: 'crtUserName',
        title: '创建人'
    }, {
        field: 'crtTime',
        title: '创建时间',
        sortable: true
    }, genBootstrapTableOptCol(290, [
        {
            'text': '查看', 'callback': function (row) {
                goto('/admin/workflow/view_flow.html?id=' + row.id);
            }
        }, {
            'text': '修改', 'callback': function (row) {
                goto('/admin/workflow/modify_flow.html?id=' + row.id);
            }
        }, {
            'text': '删除', 'callback': function (row) {
                btConfirm('删除' + row.name + '？', function () {
                    $.ajax({
                        type: "DELETE",
                        url: "/flowDef/deleteById",
                        contentType: "application/x-www-form-urlencoded",
                        dataType: "json",
                        data: {"id": row.id},
                        success: function (data) {
                            if (data.code === SUCCESS_CODE) {
                                toastr.success(data.msg);
                                //刷新列表
                                $('#table').bootstrapTable('refresh');
                            } else {
                                toastr.error(data.msg);
                            }
                        }
                    });
                });
            }
        }, {
            'text': '制作表单', 'callback': function (row) {
                goto('/admin/flowform/create_form.html?flowDefId=' + row.id);
            }
        }, {
            'text': '发起流程', 'callback': function (row) {
                //判断当前流程是否已经制作了流程表单，
                //判断当前流程中是否有指定型任务，
                $.ajax({
                    type: "GET",
                    url: "/flowDef/check",
                    contentType: "application/x-www-form-urlencoded",
                    dataType: "json",
                    data: {"id": row.id},
                    success: function (data) {
                        //console.log(data);
                        if (data.code === SUCCESS_CODE) {
                            //判断是否有流程表单
                            if (!data.payload.hasFlowDefForm) {
                                toastr.warning('该流程没有流程表单，无法发起流程。');
                                return;
                            }
                            if (data.payload.hasPointTask) {
                                //为 pointTask 指定办理人
                                //console.log("指定任务办理人");
                                goto('/admin/flowinst/point_assignee.html?id=' + row.id);
                            } else {
                                //填写流程表单
                                //console.log("填写流程表单");
                                goto('/admin/flowinst/start_flow.html?flowDefId=' + row.id);
                            }
                        } else {
                            toastr.error(data.msg);
                        }
                    }
                });
            }
        }
    ])
    ];
    options.sortName = "crtTime";//默认排序字段，需要与bt的字段一致，否则不能正常显示
    options.sortOrder = "desc";//默认排序规则
    options.queryParams = function (params) {
        //先回调此函数，后回调 ajax 函数，将此函数的返回值传给 ajax 函数的参数的 data 属性中
        //在这里加入自定义参数
        params.name = $('#toolbar [name="name"]').val();
        params.des = $('#toolbar [name="des"]').val();
        // params.open = $.isEmptyObject($('#toolbar [name="open"]').val()) ? null : $('#toolbar [name="open"]').val();
        return params
    };

    $('#table').bootstrapTable(options);

    //搜索
    $('#toolbar #search').click(function () {
        $('#table').bootstrapTable('refresh');
        //阻止默认事件
        return false;
    });
})